From 8589c5c65e70fce2ac415c5f3b9f9808e89ed440 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 23 Nov 2010 17:38:28 -0500 Subject: [PATCH] Add slider illustration --- docs/reference/gtk/Makefile.am | 3 +- docs/reference/gtk/images/sliders.png | Bin 0 -> 470 bytes gtk/gtkstylecontext.c | 5 +++ tests/styleexamples.c | 45 +++++++++++++++++++++++--- 4 files changed, 48 insertions(+), 5 deletions(-) create mode 100644 docs/reference/gtk/images/sliders.png diff --git a/docs/reference/gtk/Makefile.am b/docs/reference/gtk/Makefile.am index 62f4556b8c..e45d3426d7 100644 --- a/docs/reference/gtk/Makefile.am +++ b/docs/reference/gtk/Makefile.am @@ -347,7 +347,8 @@ HTML_IMAGES = \ $(srcdir)/images/arrows.png \ $(srcdir)/images/expanders.png \ $(srcdir)/images/background.png \ - $(srcdir)/images/frames.png + $(srcdir)/images/frames.png \ + $(srcdir)/images/sliders.png # Extra options to supply to gtkdoc-fixref FIXXREF_OPTIONS=--extra-dir=../gdk/html \ diff --git a/docs/reference/gtk/images/sliders.png b/docs/reference/gtk/images/sliders.png new file mode 100644 index 0000000000000000000000000000000000000000..e832aa708d991110f7651a763e39890c055d751f GIT binary patch literal 470 zcmV;{0V)28P)1p=5Jh)HIvEmj9^=9%2x(H;pp?q>Vh}1)gj^ww2^fLh2A@EaViThvX?Ek);-6(+ zC#^vH_mAdJA^O<9n}ozi958eBT;n>?QlF5&tk zh^eb*W*%I{^~Z8NewyD~ud7YlwqwuZ`twcC2j)>R<{#+!BdP}*)q_oHdZhdj5;_DS z-NTXmi6lly_i)_vK|i7UyuH3K^L(*%9)X)aFsugN^FJ zCN(|K^V{HbB4;Px# M07*qoM6N<$f + * Typical slider rendering + * + * + * * Since: 3.0 **/ void diff --git a/tests/styleexamples.c b/tests/styleexamples.c index 248ca645dd..b66add59ac 100644 --- a/tests/styleexamples.c +++ b/tests/styleexamples.c @@ -177,21 +177,56 @@ static gboolean draw_cb_activity (GtkWidget *widget, cairo_t *cr) { GtkStyleContext *context; + GtkWidgetPath *path; context = gtk_widget_get_style_context (widget); + gtk_style_context_notify_state_change (context, + gtk_widget_get_window (widget), + NULL, + GTK_STATE_FLAG_ACTIVE, + TRUE); + gtk_style_context_save (context); - gtk_style_context_add_class (context, "spinner"); - gtk_style_context_set_state (context, 0); + path = gtk_widget_path_new (); + gtk_widget_path_append_type (path, GTK_TYPE_SPINNER); + gtk_widget_path_iter_add_class (path, 0, "spinner"); + gtk_style_context_set_path (context, path); + gtk_widget_path_free (path); + + gtk_style_context_set_state (context, GTK_STATE_FLAG_ACTIVE); gtk_render_activity (context, cr, 12, 12, 12, 12); - gtk_style_context_set_state (context, GTK_STATE_FLAG_INSENSITIVE); - gtk_render_activity (context, cr, 36, 12, 12, 12); gtk_style_context_restore (context); return TRUE; } +static gboolean +draw_cb_slider (GtkWidget *widget, cairo_t *cr) +{ + GtkStyleContext *context; + GtkWidgetPath *path; + + context = gtk_widget_get_style_context (widget); + gtk_style_context_save (context); + + path = gtk_widget_path_new (); + gtk_widget_path_append_type (path, GTK_TYPE_SCALE); + gtk_widget_path_iter_add_class (path, 0, "slider"); + gtk_widget_path_iter_add_class (path, 0, "scale"); + gtk_style_context_set_path (context, path); + gtk_widget_path_free (path); + + gtk_render_slider (context, cr, 12, 22, 30, 10, GTK_ORIENTATION_HORIZONTAL); + gtk_render_slider (context, cr, 54, 12, 10, 30, GTK_ORIENTATION_VERTICAL); + + gtk_style_context_restore (context); + + return TRUE; +} + + static char *what; @@ -212,6 +247,8 @@ draw_cb (GtkWidget *widget, cairo_t *cr) return draw_cb_frame (widget, cr); else if (strcmp (what, "activity") == 0) return draw_cb_activity (widget, cr); + else if (strcmp (what, "slider") == 0) + return draw_cb_slider (widget, cr); return FALSE; } -- 2.30.2